package message.monitor;
/**
 * @ClassName Listener
 * @Description TODO
 * @Author wst
 * @Date 2020年6月5日 下午9:03:23
 * @Version 1.0
 */
import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

import message.database.Data;
import message.entity.Entity;

public class Monitor implements MessageListener {
	private ExecutorService threadPool=Executors.newFixedThreadPool(8);//通过线程池获得线程
	@Override
	public void onMessage(Message message){//从生产者获取信息
		// TODO Auto-generated method stub
		threadPool.execute(new Runnable()//接收Runnable对象参数，并在子线程里运算
				{
			@Override
            public void run() {//创建任务并运行？
                try {
                    try {
                        Thread.sleep(new Random().nextInt(2)*500);//异常处理
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    String []strs=(((TextMessage)message).getText()).split(" ");//从生产者获取信息
                    Entity entity=new Entity();//获取对象属性
//                    entityset
//                    My my=new My();
//                    my.setName(strs[0]);
//                    my.setId(Integer.parseInt(strs[1]));
//                    my.setLevel(strs[2]);
//                    
                    entity.setName(strs[0]);
                    entity.setProfession(strs[2]);
                    entity.setSex(strs[1]);
                    Data dbsconn=new Data();
                    dbsconn.data(entity);
//                    dbsconn.dbsConn(entity);
                    
                    System.out.println("接收线程..."+Thread.currentThread().getName()+"收到的消息是："+((TextMessage)message).getText()); 
                } catch (JMSException e) {
                    e.printStackTrace();
                }
            }
				});
	}
}